package com.hjx.other;

/**
 * 我有n元钱 汽水一块钱一瓶  三个瓶盖可以换一瓶   一共可以喝几瓶汽水？
 */
public class ThreeBottle {

    public static void main(String[] args) {
        System.out.println(huanpingzi(10000, 3));
    }

    /**
     * n个瓶子能换几个瓶子
     *
     * n - n % 3 表示能换瓶子的部分
     *
     * (n / 3) + (n % 3) 表示 换过瓶子 后剩几个瓶子  以此为当前总瓶子的个数 继续递归计算剩余瓶子能换几个瓶子
     *
     * @param n
     * @param unit
     * @return
     */
    public static int huanpingzi(int n, int unit) {
        System.out.println("当前瓶子的个数 == 》 " + n);
        if (n == 1) {
            return 1;
        } else if (n == 2) {
            //借一个瓶子 还一个瓶子
            return n + 1;
        }

        //这段表示换过瓶子后 剩几个瓶子
        return n - (n % unit) + huanpingzi((n / unit) + (n % unit), unit);
    }
}
